

#ifndef PYTHONPLUGIN_H_INCLUDED
#define PYTHONPLUGIN_H_INCLUDED

#include <wx/wxprec.h>

#ifndef WX_PRECOMP
	#include <wx/wx.h>
#endif

#include <sdk.h>
#include <cbplugin.h> 
#include "ShellCtrlBase.h"

class PythonInterpreter : public cbPlugin
{
    public:
		
        PythonInterpreter();
		
        virtual ~PythonInterpreter();

// Misc Plugin Virtuals
        virtual int Configure(); 
        virtual int GetConfigurationPriority() const { return 50; }
        virtual int GetConfigurationGroup() const { return cgUnknown; }
        virtual cbConfigurationPanel* GetConfigurationPanel(wxWindow* parent); 
        virtual cbConfigurationPanel* GetProjectConfigurationPanel(wxWindow* parent, cbProject* project){ return 0; } 
        virtual void BuildMenu(wxMenuBar* menuBar); 
        virtual void BuildModuleMenu(const ModuleType type, wxMenu* menu, const FileTreeData* data = 0); 
        virtual bool BuildToolBar(wxToolBar* toolBar); 
        virtual int Execute();
    protected:
        virtual void OnAttach();
        virtual void OnRelease(bool appShutDown);

/// Non-boiler plate methods
    public:

    private:
        void AddNewInterpreter(wxCommandEvent &event);
        void OnToggleInterpreterWindow(wxCommandEvent &event);
        void OnUpdateUI(wxUpdateUIEvent& event);
        wxMenu *m_ViewMenu;
#ifndef TOOLSPLUSLINK
        ShellManager *m_shellmgr;
#endif

        DECLARE_EVENT_TABLE();
};

#endif // PYTHONPLUGIN_H_INCLUDED
